package com.jy.modules.cims.component.deal;

import java.util.List;

import com.jy.modules.cims.data.dto.CPackageDto;
import com.jy.modules.cims.data.dto.DealDetailDto;
import com.jy.modules.cims.data.dto.DealDetailQueryDto;
import com.jy.modules.cims.data.dto.DealDto;
import com.jy.modules.cims.data.dto.DealQueryDto;

/**
 * 交易处理组件
 */
public interface ICDeal {

    /**
     * 交易查询列表
     * @param dto 
     * @return
     */
    public List<DealDto> getDealList(DealQueryDto dto);

    /**
     * 明细查询目前需要支持债权、贷款明细查询
     * @param dto 
     * @return
     */
    public List<Object> getDealDetailList(DealDetailQueryDto dto);

    /**
     * 此方式实现：
     * 需要根据交易类型的不同，分别到各自的明细对象中获得详情。
     * @param dto 
     * @return
     */
    public Object getDealDetailByID(DealDetailQueryDto dto);

    /**
     * 保存交易流水主表
     * @param dto 
     * @return
     */
    public DealDto saveDeal(DealDto dto);

    /**
     * 保留交易明细列表
     * @param detailList 
     * @return
     */
    public void saveDealDetail(List<DealDetailDto> detailList);

    /**
     * 删除交易明细信息
     * @param detailList 
     * @return
     */
    public void deleteDealDetail(List<DealDetailDto> detailList);

    /**
     * 获得债券包列表
     */
    public void getPackageList();

    /**
     * 保存债权包信息
     * @param dto
     */
    public void savePackage(CPackageDto dto);

    /**
     * 获得导出模板
     * @param cooperOrgCode 
     * @return
     */
    public String getExportTmp(String cooperOrgCode);
    
	/**
	 * 
	 * @Title createDealCode
	 * @Description 创建流水编号
	 * @param codeType
	 * @return
	 * @throws Exception 
	 * String 
	 * @author lizhiqiang
	 * @date 2015-1-20-下午5:12:35
	 * @update 
	 * @throws
	 */
    public String createDealCode(String codeType) throws Exception;
    
}